题面传送门:P16247 [蓝桥杯 2026 省研究生组] 魔法矩阵能量值
题目大意
根据计算规则模拟求各项能量值之和。
思路讲解
注意到此题目 ,可使用循环枚举出各个位置能量值,再相加。
题目强调,我们必须顺次执行计算规则。可使用多个并列的 if 语句来实现。
代码实现
AC代码
#include<bits/stdc++.h>using namespace std;int n=13,a[15][15],sum;int main(){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ a[i][j]=i*j*(i+j); if(i==j) a[i][j]*=2; if(i==1||i==n||j==1||j==n) a[i][j]/=2; if(i==(n+1)/2&&i==j) a[i][j]+=100;//由于13是奇数,所以必有中心点 } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ sum+=a[i][j]; } } cout<<sum; return 0;}此代码也有值得优化的地方。如:改数组为变量节省空间;合并两层循环等。














